From 3a8690df4ac44731476b9d9f0aa30470bce3d66c Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 1 Apr 2009 11:53:15 +0100 Subject: [PATCH] x86 hpet: fix irq_vector[] update of c/s 19419 Signed-off-by: Jan Beulich Signed-off-by: Keir Fraser --- xen/arch/x86/hpet.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c index 97d0979305..ea7c5be144 100644 --- a/xen/arch/x86/hpet.c +++ b/xen/arch/x86/hpet.c @@ -343,20 +343,16 @@ static int hpet_setup_msi_irq(unsigned int vector) static int hpet_assign_irq(struct hpet_event_channel *ch) { - unsigned int vector; + int vector; - vector = assign_irq_vector(AUTO_ASSIGN_IRQ); - if ( !vector ) - return -EINVAL; + if ( (vector = assign_irq_vector(AUTO_ASSIGN_IRQ)) < 0 ) + return vector; - irq_vector[vector] = vector; - vector_irq[vector] = vector; vector_channel[vector] = ch - &hpet_events[0]; if ( hpet_setup_msi_irq(vector) ) { - irq_vector[vector] = 0; - vector_irq[vector] = FREE_TO_ASSIGN_IRQ; + free_irq_vector(vector); vector_channel[vector] = -1; return -EINVAL; } -- 2.30.2